 /*******************************************************************************
  * 文件：NetComm_Constant.h
  * 作者：zyz
  * 版本：v1.0.0
  * 日期：2017-08-03
  * 说明：常量
*******************************************************************************/
#ifndef __NETCOMM_CONSTANT_H
#define __NETCOMM_CONSTANT_H

/* 头文件 *********************************************************************/
/* 宏定义 *********************************************************************/
// 长度定义
#define U8_NETCOMM_PKT_MAX_LEN           ((U8) 128)    // 网络包最大长度
#define U8_NETCOMM_PKT_LENGTH_LEN        ((U8)   1)    // 帧长长度
#define U8_NETCOMM_PKT_RSRV_BYTES_LEN    ((U8)   6)    // 保留字节长度
#define U8_NETCOMM_PKT_CMD_LEN           ((U8)   1)    // 命令长度
#define U8_NETCOMM_PKT_CHECKSUM_LEN      ((U8)   1)    // 校验和长度
#define U8_NETCOMM_PKT_BODY_LEN          \
        (U8_NETCOMM_PKT_MAX_LEN -        \
         U8_NETCOMM_PKT_LENGTH_LEN)                    // 帧体长度
#define U8_NETCOMM_PKT_DATA_LEN          \
        (U8_NETCOMM_PKT_BODY_LEN -       \
         U8_NETCOMM_PKT_RSRV_BYTES_LEN - \
         U8_NETCOMM_PKT_CMD_LEN)                       // 数据长度

// 字符定义
#define U8_NETCOMM_PKT_HEADER_BYTE       	((U8) 0xFF)    // 帧头字节
#define U8_NETCOMM_PKT_REDUNDANT_BYTE    	((U8) 0x55)    // 冗余字节

// 队列大小
#define U8_NETCOMM_SEND_QUEUE_SIZE    		((U8) 1)    // 发送队列大小
#define U8_NETCOMM_RECV_QUEUE_SIZE    		((U8) 1)    // 接收队列大小

// 重发次数
#define u8NETCOMM_RETRY_SEND_TIMES   		((U8) 2)    // 重发次数

// 定时器相关
#define U16_NETCOMM_SEND_DELAY_MSEC         ((U16)    25)    // 发送延时毫秒时间
#define U16_NETCOMM_WAIT_ACK_DELAY_COUNT    ((U16)    12)    // 等待应答延时个数，12*25ms = 300ms
#define U16_NETCOMM_SEND_PKT_DELAY_MSEC     ((U16)    25)    // 发送数据包延时毫秒时间
#define U16_NETCOMM_CHECK_STATUS_MSEC       ((U16)   500)    // 检测状态毫秒时间
#define U16_NETCOMM_RPT_ALARM_STATUS_MSEC   ((U16)   200)    // 汇报报警状态毫秒时间
#define U16_NETCOMM_RPT_DEV_STATUS_MSEC     ((U16) 10000)    // 汇报设备状态毫秒时间
#define U16_NETCOMM_RPT_BIG_DATA_MSEC       ((U16) 60000)    // 汇报大数据毫秒时间

/* 类型定义 *******************************************************************/
#define  U16_NETCOMM_NETSTATUS_OK            ((U16) 0x0000) //通信正常
#define  U16_NETCOMM_NETSTATUS_NO_AP         ((U16) 0x0001) //无法连接AP
#define  U16_NETCOMM_NETSTATUS_NO_SERVER     ((U16) 0x0002) //无法连接服务器
#define  U16_NETCOMM_NETSTATUS_CFG           ((U16) 0x0003) //设备处于配置模式


/* 变量定义 *******************************************************************/
/* 函数声明 *******************************************************************/


#endif    /*** #ifndef __NETCOMM_CONSTANT_H ***/
